{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c369ebb7-15c3-45d1-af03-e91e015373af",
   "metadata": {},
   "source": [
    "Chapter 06\n",
    "\n",
    "# 绘制规范正交基网格\n",
    "《线性代数》 | 鸢尾花书：数学不难"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8fe42696-2aa4-45dc-8449-9618bda6eaf8",
   "metadata": {},
   "source": [
    "这段代码的核心任务是**构造并可视化二维欧几里得空间中一组经过旋转变换后的规范正交基向量和相应的格点结构**，展示一个由单位圆、基底向量及其张成的网格组成的几何图像。下面我们从数学角度逐步详细解释整个流程。\n",
    "\n",
    "---\n",
    "\n",
    "首先，定义旋转角 $\\theta = \\frac{\\pi}{3}$，也就是 $60^\\circ$。基于该角度构造了一个二维的**正交变换矩阵**（也是一个**旋转矩阵**）：\n",
    "\n",
    "$$\n",
    "A = \\begin{bmatrix}\n",
    "\\cos\\theta & -\\sin\\theta \\\\\n",
    "\\sin\\theta & \\cos\\theta\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "矩阵 $A$ 代表在二维平面上**绕原点逆时针旋转 $\\theta$ 弧度的线性变换**。这种矩阵具有以下两个性质：\n",
    "\n",
    "1. $A^\\top A = I$，即 $A$ 是一个正交矩阵；\n",
    "2. $\\det(A) = 1$，说明它是一个**保距离、保面积**的旋转。\n",
    "\n",
    "我们从矩阵 $A$ 中提取其两列向量：\n",
    "\n",
    "- $a_1 = A[:, 0] = \\begin{bmatrix} \\cos\\theta \\\\ \\sin\\theta \\end{bmatrix}$\n",
    "- $a_2 = A[:, 1] = \\begin{bmatrix} -\\sin\\theta \\\\ \\cos\\theta \\end{bmatrix}$\n",
    "\n",
    "这两个向量构成了二维空间中一组新的**规范正交基（orthonormal basis）**。它们长度为 1，彼此正交，且由单位正交基 $\\{\\mathbf{e}_1, \\mathbf{e}_2\\}$ 通过线性变换 $A$ 得到。\n",
    "\n",
    "---\n",
    "\n",
    "接下来，代码生成了单位圆上 721 个点，对应角度在 $[0, 2\\pi]$ 区间均匀分布：\n",
    "\n",
    "- $x_1 = \\cos\\theta$\n",
    "- $x_2 = \\sin\\theta$\n",
    "\n",
    "这些点构成了单位圆上的参数化轨迹，可以用来直观展示欧氏空间中“长度为 1” 的所有向量构成的集合。\n",
    "\n",
    "---\n",
    "\n",
    "在图像中，我们绘制了以下元素：\n",
    "\n",
    "1. **单位圆**：展示原始坐标系中所有模长为 1 的向量集合，形状为标准圆。\n",
    "2. **基底向量 $\\mathbf{a}_1$ 与 $\\mathbf{a}_2$**：\n",
    "   - 以原点为起点，向量方向分别为 $a_1$ 和 $a_2$；\n",
    "   - 可视化的红色和绿色箭头表示旋转后的基向量。\n",
    "3. **旋转后的网格结构**：\n",
    "   - 任意点 $\\mathbf{v}$ 可以写成线性组合：$\\mathbf{v} = i a_1 + j a_2$，其中 $i, j \\in \\mathbb{Z}$；\n",
    "   - 所以格点是 $\\{i a_1 + j a_2\\ |\\ i,j\\in\\mathbb{Z}\\}$ 的集合；\n",
    "   - 为了绘制这个格子，代码枚举了 $i, j \\in [-10, 10]$，并绘制两组平行直线：\n",
    "     - 一组沿 $a_2$ 方向，起点随着 $a_1$ 的倍数平移；\n",
    "     - 一组沿 $a_1$ 方向，起点随着 $a_2$ 的倍数平移。\n",
    "\n",
    "从而构成了一个由新基底张成的二维晶格（lattice），形状与原始直角网格不同，具有旋转后的平行结构。\n",
    "\n",
    "---\n",
    "\n",
    "**最终图像**是一个非常直观的几何展示：\n",
    "\n",
    "- 单位圆表明了“长度不变”的旋转特性；\n",
    "- 两个新基底显示了旋转角度和正交性；\n",
    "- 网格结构展示了由这组新基底张成的平面，凸显出旋转后的坐标系统结构。\n",
    "\n",
    "这个图不仅是对线性代数中“变换基底”的可视化演示，也体现了正交矩阵保持向量长度与夹角的性质（即保持欧几里得结构不变）。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f7dcf81e-e69f-4668-87a1-88339c0bdc9f",
   "metadata": {},
   "source": [
    "## 初始化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "996307ea-39de-4a37-bb1c-133809bc8836",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7927688c-fb8c-4942-afe1-b28d74ea94cf",
   "metadata": {},
   "source": [
    "## 定义规范正交基"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "7e36d078-cfbc-424a-9f69-759a95e9a3fc",
   "metadata": {},
   "outputs": [],
   "source": [
    "theta = np.pi/3\n",
    "A = np.array([[np.cos(theta), -np.sin(theta)],\n",
    "              [np.sin(theta),  np.cos(theta)]])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4d291951-5ed5-423b-a999-69c10ee2dbc7",
   "metadata": {},
   "source": [
    "## 提取基底向量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e1b23455-c9ca-4dee-befe-0598db117c5b",
   "metadata": {},
   "outputs": [],
   "source": [
    "a1 = A[:, 0]  # 第一列向量\n",
    "a2 = A[:, 1]  # 第二列向量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "01b2e054-e9a2-4cd5-ad7c-4ca83157cb72",
   "metadata": {},
   "source": [
    "## 单位圆"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "fe689149-3e3a-450c-a3ad-863f86139a64",
   "metadata": {},
   "outputs": [],
   "source": [
    "theta_array = np.linspace(0, 2*np.pi, 721)\n",
    "x1_array = np.cos(theta_array)\n",
    "x2_array = np.sin(theta_array)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "92ddeedc-5e92-4bfe-a1ec-5f4839867ddf",
   "metadata": {},
   "source": [
    "## 可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "ffa16d30-3c75-41e1-bc0c-5ddd8cf2c525",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "\n",
    "# 绘制单位圆\n",
    "ax.plot(x1_array, x2_array, lw = 0.2, c = 'k', ls = '--')\n",
    "\n",
    "# 绘制箭头\n",
    "ax.quiver(0, 0, a1[0], a1[1], \n",
    "          angles='xy', scale_units='xy', \n",
    "          scale=1, color='r')\n",
    "ax.quiver(0, 0, a2[0], a2[1], \n",
    "          angles='xy', scale_units='xy', \n",
    "          scale=1, color='#92D050')\n",
    "\n",
    "# 绘制旋转网格，请思考有其他方法绘制网格\n",
    "grid_range = np.arange(-10, 11)\n",
    "for i in grid_range:\n",
    "    start = i * a1 + grid_range[0] * a2\n",
    "    end = i * a1 + grid_range[-1] * a2\n",
    "    ax.plot([start[0], end[0]], [start[1], end[1]], color='k', lw=0.2)  # a2 方向线\n",
    "\n",
    "for j in grid_range:\n",
    "    start = grid_range[0] * a1 + j * a2\n",
    "    end = grid_range[-1] * a1 + j * a2\n",
    "    ax.plot([start[0], end[0]], [start[1], end[1]], color='k', lw=0.2)  # a1 方向线\n",
    "    \n",
    "# 装饰\n",
    "ax.set_xlim(-4, 4)\n",
    "ax.set_ylim(-4, 4)\n",
    "ax.set_aspect('equal')\n",
    "ax.axhline(0, color='k', linewidth=1)\n",
    "ax.axvline(0, color='k', linewidth=1)\n",
    "ax.grid(c = '0.88')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "52cfa137-5528-444f-9fb2-d119f29bd937",
   "metadata": {},
   "source": [
    "作者\t**生姜DrGinger**  \n",
    "脚本\t**生姜DrGinger**  \n",
    "视频\t**崔崔CuiCui**  \n",
    "开源资源\t[**GitHub**](https://github.com/Visualize-ML)  \n",
    "平台\t[**油管**](https://www.youtube.com/@DrGinger_Jiang)\t\t\n",
    "\t\t[**iris小课堂**](https://space.bilibili.com/3546865719052873)\t\t\n",
    "\t\t[**生姜DrGinger**](https://space.bilibili.com/513194466)  "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:base] *",
   "language": "python",
   "name": "conda-base-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
